home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / comm / tcp / Amster.lha / Amster_Install / Source / panel.c < prev    next >
C/C++ Source or Header  |  2000-07-18  |  9KB  |  262 lines

  1. /*
  2. ** Panel
  3. */
  4.  
  5. #include "include/config.h"
  6.  
  7. #include "include/gui.h"
  8. #include "include/panel.h"
  9. #include "include/download.h"
  10. #include "include/info.h"
  11. #include "include/share.h"
  12. #include "include/msg.h"
  13. #include "include/chat.h"
  14. #include "include/about.h"
  15. #include "include/prefs.h"
  16. #include "pix/logo.h"
  17. #include "pix/infoicon.h"
  18. #include "pix/msgicon.h"
  19. #include "pix/chaticon.h"
  20. #include "pix/dlicon.h"
  21. #include "pix/shareicon.h"
  22. #include "pix/prficon.h"
  23. #include "amster_Cat.h"
  24.  
  25. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg);
  26. extern struct Hook handleHook;
  27.  
  28.  
  29. MUIF panel_dispatch(REG(a0) struct IClass *cl,REG(a2) Object *obj,REG(a1) Msg msg)
  30. {
  31.     u_long tmp;
  32.     struct paneldata *data;
  33.  
  34.     switch(msg->MethodID) {
  35.         case OM_NEW:
  36.             return(panel_new(cl,obj,(APTR)msg));
  37.         case PANEL_OPENABOUT:
  38.             data = INST_DATA(cl, obj);
  39.             set(data->logo,MUIA_Selected,FALSE);
  40.             set(gui->awin,MUIA_Window_Open,TRUE);
  41.             return NULL;
  42.         case PANEL_OPENDEBUG:
  43.             data = INST_DATA(cl, obj);
  44.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  45.             if(tmp!=TRUE) set(data->infoicon,MUIA_Selected,TRUE);
  46.             set(gui->iwin,MUIA_Window_Open,TRUE);
  47.             return NULL;
  48.         case PANEL_CLOSEDEBUG:
  49.             data = INST_DATA(cl, obj);
  50.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  51.             if(tmp!=FALSE) set(data->infoicon,MUIA_Selected,FALSE);
  52.             set(gui->iwin,MUIA_Window_Open,FALSE);
  53.             return NULL;
  54.         case PANEL_OPENDL:
  55.             data = INST_DATA(cl, obj);
  56.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  57.             if(tmp!=TRUE) set(data->dlicon,MUIA_Selected,TRUE);
  58.             set(gui->dwin,MUIA_Window_Open,TRUE);
  59.             return NULL;
  60.         case PANEL_CLOSEDL:
  61.             data = INST_DATA(cl, obj);
  62.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  63.             if(tmp!=FALSE) set(data->dlicon,MUIA_Selected,FALSE);
  64.             set(gui->dwin,MUIA_Window_Open,FALSE);
  65.             return NULL;
  66.         case PANEL_OPENSHARE:
  67.             data = INST_DATA(cl, obj);
  68.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  69.             if(tmp!=TRUE) set(data->shareicon,MUIA_Selected,TRUE);
  70.             DoMethod(gui->shwin,SHARE_OPEN);
  71.             return NULL;
  72.         case PANEL_CLOSESHARE:
  73.             data = INST_DATA(cl, obj);
  74.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  75.             if(tmp!=FALSE) set(data->shareicon,MUIA_Selected,FALSE);
  76.             DoMethod(gui->shwin,SHARE_CLOSE);
  77.             return NULL;
  78.         case PANEL_OPENPRF:
  79.             data = INST_DATA(cl, obj);
  80.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  81.             if(tmp!=TRUE) set(data->prficon,MUIA_Selected,TRUE);
  82.             DoMethod(gui->swin,PRF_OPEN);
  83.             return NULL;
  84.         case PANEL_CLOSEPRF:
  85.             data = INST_DATA(cl, obj);
  86.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  87.             if (tmp!=FALSE) set(data->prficon,MUIA_Selected,FALSE);
  88.             DoMethod(gui->swin, (ULONG)(((muimsg)msg)->arg1));
  89.             return NULL;
  90.         case PANEL_OPENMSG:
  91.             DoMethod(gui->mwin, MSG_OPEN);
  92.             return NULL;
  93.         case PANEL_NEWCHAT:
  94.             {
  95.             Object *win;
  96.             win = NewObject(gui->chat_mcc->mcc_Class,NULL,TAG_DONE);
  97.             if (!win) return(0);
  98.             DoMethod(gui->app, OM_ADDMEMBER, win);
  99.             set(win, MUIA_Window_Open, TRUE);
  100.             return NULL;
  101.             }
  102.         case PANEL_DISPOSECHAT:
  103.             {
  104.             Object *win;
  105.             win = (Object *)(((muimsg)msg)->arg1);
  106.             if (!win) return(0);
  107.             set(win, MUIA_Window_Open, FALSE);
  108.             DoMethod(gui->app, OM_REMMEMBER, win);
  109.             MUI_DisposeObject(win);
  110.             return NULL;
  111.             }
  112.  
  113.     }
  114.     return DoSuperMethodA(cl, obj, msg);
  115. }
  116.  
  117.  
  118. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg)
  119. {
  120.     struct paneldata *data;
  121.     Object *logo,*infoicon,*msgicon,*chaticon,*dlicon,*shareicon,*prficon;
  122.  
  123.     if (obj = (Object *)DoSuperNew(cl,obj,
  124.         Child, VGroup,
  125.             Child, logo = BodychunkObject,
  126.                 MUIA_FixWidth, LOGO_WIDTH,
  127.                 MUIA_FixHeight, LOGO_HEIGHT,
  128.                 MUIA_Bitmap_Width, LOGO_WIDTH,
  129.                 MUIA_Bitmap_Height, LOGO_HEIGHT,
  130.                 MUIA_Bodychunk_Depth, LOGO_DEPTH,
  131.                 MUIA_Bodychunk_Body, (ULONG *)logo_body,
  132.                 MUIA_Bodychunk_Compression, LOGO_COMPRESSION,
  133.                 MUIA_Bodychunk_Masking, LOGO_MASKING,
  134.                 MUIA_Bitmap_SourceColors, (ULONG *)logo_colors,
  135.                 MUIA_Bitmap_Transparent, 0,
  136.                 MUIA_InputMode, MUIV_InputMode_Immediate,
  137.                 MUIA_ShowSelState, FALSE,
  138.             End,
  139.             Child, VSpace(0),
  140.             Child, infoicon = BodychunkObject,
  141.                 ImageButtonFrame,
  142.                 MUIA_Background, MUII_ButtonBack,
  143.                 MUIA_FixWidth, INFOICON_WIDTH,
  144.                 MUIA_FixHeight, INFOICON_HEIGHT,
  145.                 MUIA_Bitmap_Width, INFOICON_WIDTH,
  146.                 MUIA_Bitmap_Height, INFOICON_HEIGHT,
  147.                 MUIA_Bodychunk_Depth, INFOICON_DEPTH,
  148.                 MUIA_Bodychunk_Body, (ULONG *)infoicon_body,
  149.                 MUIA_Bodychunk_Compression, INFOICON_COMPRESSION,
  150.                 MUIA_Bodychunk_Masking, INFOICON_MASKING,
  151.                 MUIA_Bitmap_SourceColors, (ULONG *)infoicon_colors,
  152.                 MUIA_Bitmap_Transparent, 0,
  153.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  154.             End,
  155.             Child, VSpace(0),
  156.             Child, msgicon = BodychunkObject,
  157.                 ImageButtonFrame,
  158.                 MUIA_Background, MUII_ButtonBack,
  159.                 MUIA_FixWidth, MSGICON_WIDTH,
  160.                 MUIA_FixHeight, MSGICON_HEIGHT,
  161.                 MUIA_Bitmap_Width, MSGICON_WIDTH,
  162.                 MUIA_Bitmap_Height, MSGICON_HEIGHT,
  163.                 MUIA_Bodychunk_Depth, MSGICON_DEPTH,
  164.                 MUIA_Bodychunk_Body, (ULONG *)msgicon_body,
  165.                 MUIA_Bodychunk_Compression, MSGICON_COMPRESSION,
  166.                 MUIA_Bodychunk_Masking, MSGICON_MASKING,
  167.                 MUIA_Bitmap_SourceColors, (ULONG *)msgicon_colors,
  168.                 MUIA_Bitmap_Transparent, 0,
  169.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  170.             End,
  171.             Child, chaticon = BodychunkObject,
  172.                 ImageButtonFrame,
  173.                 MUIA_Background, MUII_ButtonBack,
  174.                 MUIA_FixWidth, CHATICON_WIDTH,
  175.                 MUIA_FixHeight, CHATICON_HEIGHT,
  176.                 MUIA_Bitmap_Width, CHATICON_WIDTH,
  177.                 MUIA_Bitmap_Height, CHATICON_HEIGHT,
  178.                 MUIA_Bodychunk_Depth, CHATICON_DEPTH,
  179.                 MUIA_Bodychunk_Body, (ULONG *)chaticon_body,
  180.                 MUIA_Bodychunk_Compression, CHATICON_COMPRESSION,
  181.                 MUIA_Bodychunk_Masking, CHATICON_MASKING,
  182.                 MUIA_Bitmap_SourceColors, (ULONG *)chaticon_colors,
  183.                 MUIA_Bitmap_Transparent, 0,
  184.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  185.             End,
  186.             Child, VSpace(0),
  187.             Child, dlicon = BodychunkObject,
  188.                 ImageButtonFrame,
  189.                 MUIA_Background, MUII_ButtonBack,
  190.                 MUIA_FixWidth, DLICON_WIDTH,
  191.                 MUIA_FixHeight, DLICON_HEIGHT,
  192.                 MUIA_Bitmap_Width, DLICON_WIDTH,
  193.                 MUIA_Bitmap_Height, DLICON_HEIGHT,
  194.                 MUIA_Bodychunk_Depth, DLICON_DEPTH,
  195.                 MUIA_Bodychunk_Body, (ULONG *)dlicon_body,
  196.                 MUIA_Bodychunk_Compression, DLICON_COMPRESSION,
  197.                 MUIA_Bodychunk_Masking, DLICON_MASKING,
  198.                 MUIA_Bitmap_SourceColors, (ULONG *)dlicon_colors,
  199.                 MUIA_Bitmap_Transparent, 0,
  200.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  201.             End,
  202.             Child, shareicon = BodychunkObject,
  203.                 ImageButtonFrame,
  204.                 MUIA_Background, MUII_ButtonBack,
  205.                 MUIA_FixWidth, SHAREICON_WIDTH,
  206.                 MUIA_FixHeight, SHAREICON_HEIGHT,
  207.                 MUIA_Bitmap_Width, SHAREICON_WIDTH,
  208.                 MUIA_Bitmap_Height, SHAREICON_HEIGHT,
  209.                 MUIA_Bodychunk_Depth, SHAREICON_DEPTH,
  210.                 MUIA_Bodychunk_Body, (ULONG *)shareicon_body,
  211.                 MUIA_Bodychunk_Compression, SHAREICON_COMPRESSION,
  212.                 MUIA_Bodychunk_Masking, SHAREICON_MASKING,
  213.                 MUIA_Bitmap_SourceColors, (ULONG *)shareicon_colors,
  214.                 MUIA_Bitmap_Transparent, 0,
  215.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  216.             End,
  217.             Child, VSpace(0),
  218.             Child, prficon = BodychunkObject,
  219.                 ImageButtonFrame,
  220.                 MUIA_Background, MUII_ButtonBack,
  221.                 MUIA_FixWidth, PRFICON_WIDTH,
  222.                 MUIA_FixHeight, PRFICON_HEIGHT,
  223.                 MUIA_Bitmap_Width, PRFICON_WIDTH,
  224.                 MUIA_Bitmap_Height, PRFICON_HEIGHT,
  225.                 MUIA_Bodychunk_Depth, PRFICON_DEPTH,
  226.                 MUIA_Bodychunk_Body, (ULONG *)prficon_body,
  227.                 MUIA_Bodychunk_Compression, PRFICON_COMPRESSION,
  228.                 MUIA_Bodychunk_Masking, PRFICON_MASKING,
  229.                 MUIA_Bitmap_SourceColors, (ULONG *)prficon_colors,
  230.                 MUIA_Bitmap_Transparent, 0,
  231.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  232.             End,
  233.             Child, VSpace(0),
  234.         End,
  235.         TAG_MORE, msg->ops_AttrList))
  236.     {
  237.         data = INST_DATA(cl,obj);
  238.         data->logo = logo;
  239.         data->infoicon = infoicon;
  240.         data->dlicon = dlicon;
  241.         data->shareicon = shareicon;
  242.         data->prficon = prficon;
  243.  
  244.         DoMethod(logo,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENABOUT);
  245.  
  246.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDEBUG);
  247.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDEBUG);
  248.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDL);
  249.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDL);
  250.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENSHARE);
  251.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSESHARE);
  252.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENPRF);
  253.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,FALSE,obj,2,PANEL_CLOSEPRF,PRF_CANCEL);
  254.  
  255.         DoMethod(msgicon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_OPENMSG);
  256.         DoMethod(chaticon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_NEWCHAT);
  257.  
  258.         return((ULONG)obj);
  259.     }
  260.     return(0);
  261. }
  262.